<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // Set

    // 创建方式1
    let set = new Set()
    set.add(1)
    set.add(2)

    // 创建方式2
    let newSet = new Set([1,2,3])
    
    // 判断是否包含某一元素
    newSet.has(1) // true

    // 获取长度
    newSet.size

    // 删除某一个元素
    newSet.delete(1)

    // Set转数组
    let arr = [...newSet] // 或
    let arr1 = Array.from(newSet)

    // Set去重
    // 内部包含引用类型数据不会被去重
    // 内部包含NaN会被去重
    let arr2 = [1,2,2,3]
    let arr3 = [...new Set(arr2)]
    // ---------------------------------------------------------

    // Map

    // 创建方式
    let map = new Map()
    // 传入key, value
    // key可以是任意类型
    map.set('你好', 123)

    // 传入数组, 数组为一个二维数组, 第一项为key,第二项为value 
    let map2 = new Map([['你好', 123], [true, true]])

    // 判断map是否存在某个key
    console.log(map2.has('你好')); // true

    // 通过key获取value
    console.log(map2.get('你好')); // 123, 没找到会返回undefined

    // 删除
    map2.delete('你好') // {true => true}
    console.log(map2);
  </script>
</body>
</html>